<template>
  <div class="user-container">
    <!-- 根据fixedHeader的值，动态添加fixed-header类 -->
    <div :class="{'fixed-header':fixedHeader}">
      <!-- 引入UserNavbar组件 -->
      <UserNavbar/>
      <!-- 路由视图 -->
      <router-view />
    </div> 
  </div>
        
  </template>
  
  <script>
  // 引入UserNavbar组件
  import { UserNavbar } from '../../layout/components'
  // 引入vuex的mapState方法
  import { mapState } from 'vuex'
  // 引入变量文件
  import variables from '@/assets/styles/variables.scss'
  
  export default {
    name: 'Layout',
    components: {
      UserNavbar,
    },
    computed: {
      // 使用mapState方法，将vuex中的fixedHeader映射到组件的计算属性中
      ...mapState({
        fixedHeader: state => state.settings.fixedHeader
      }),
      // 定义一个计算属性，返回变量文件中的变量
      variables() {
        return variables;
      }
    },
    methods: {
    }
  }
  </script>
  
  <style lang="scss" scoped>
    // 引入mixin文件
    @import "~@/assets/styles/mixin.scss";
    // 引入变量文件
    @import "~@/assets/styles/variables.scss";
    .user-container {
      display: flex;
      flex-direction: column;
      height: 100vh;
    }
  
    .app-wrapper {
      @include clearfix;
      position: relative;
      height: 100%;
      width: 100%;
  
      &.mobile.openSidebar {
        position: fixed;
        top: 0;
      }
    }
  
    .drawer-bg {
      background: #000;
      opacity: 0.3;
      width: 100%;
      top: 0;
      height: 100%;
      position: absolute;
      z-index: 999;
    }
  
    // 当fixedHeader为true时，添加fixed-header类
    .fixed-header {
      position: fixed;
      top: 0;
      right: 0;
      z-index: 9;
      width: 100% !important;
      transition: width 0.28s;
    }
  
    // 当hideSidebar为true时，fixed-header的宽度为calc(100% - 54px)
    .hideSidebar .fixed-header {
      width: calc(100% - 54px);
    }
  
    // 当sidebarHide为true时，fixed-header的宽度为100%
    .sidebarHide .fixed-header {
      width: 100%;
    }
  
    // 当mobile为true时，fixed-header的宽度为100%
    .mobile .fixed-header {
      width: 100%;
    }
  </style>
  